﻿Public Class frmMarcaVehiculo
    Dim _titulo As String
    Dim _tipoVentana As String
    Dim _idMarca As String
    Dim _sePresionoGuardar As Boolean = False
    Dim utilidades As New Utilidades
    Dim _formPrincipal As frmPrincipal

    Public Sub New(ByVal tipoVentana As Integer, ByRef form As frmPrincipal)
        Me.InitializeComponent()

        If tipoVentana = Constantes.Ventana_Tipo_Apertura_Nuevo Then
            _titulo = "Nueva Marca de Vehículo"
        End If
        If tipoVentana = Constantes.Ventana_Tipo_Apertura_Edicion Then
            _titulo = "Modificar Marca de Vehículo"
        End If
        _formPrincipal = form
        _tipoVentana = tipoVentana
    End Sub

    Public Property idMarca()
        Get
            Return _idMarca
        End Get
        Set(ByVal value)
            _idMarca = value
        End Set
    End Property

    Private Sub frmMarcaVehiculo_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        If _sePresionoGuardar = False Then
            If MessageBox.Show("Si cancela no se guardarán los cambios ¿Está seguro?", "Atención", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) = Windows.Forms.DialogResult.OK Then
                e.Cancel = False
            Else
                e.Cancel = True
            End If
        End If
    End Sub

    Private Sub frmMarcaVehiculo_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'Seteo el Titulo de la Ventana
        Me.Text = _titulo

        Me.cargarDatosDeLaMarca()
    End Sub

    Private Sub cmdCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdCancelar.Click
        _sePresionoGuardar = False
        Me.Close()
    End Sub

    Private Sub cmdGuardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdGuardar.Click
        If Me.txtMarca.Text.Trim() = "" Then
            MsgBox("La Marca es requerida", vbOKOnly + vbCritical, "Atención")
            Me.txtMarca.Focus()
            Exit Sub
        End If
        
        If MessageBox.Show("¿Está seguro que desea guardar los cambios?", "Atención", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) = Windows.Forms.DialogResult.OK Then
            Dim myAccesoDatos As New AccesoDatos

            Dim myConsulta As String
            Dim tabla As Data.DataTable
            myConsulta = "SELECT DESCRIPCION FROM MARCAS_VEHICULOS WHERE UPPER(DESCRIPCION) = UPPER('" & Me.txtMarca.Text.Trim() & "')"

            If Not _idMarca = "" Then
                myConsulta = myConsulta & " AND ID <> " & _idMarca
            End If

            tabla = myAccesoDatos.ejecutarConsulta(myConsulta)

            If tabla.Rows.Count = 0 Then

                If _tipoVentana = Constantes.Ventana_Tipo_Apertura_Nuevo Then
                    myConsulta = "INSERT INTO MARCAS_VEHICULOS(DESCRIPCION) VALUES ('" & Me.txtMarca.Text.Trim() & "') "
                    myAccesoDatos.ejecutarConsulta(myConsulta)
                End If

                If _tipoVentana = Constantes.Ventana_Tipo_Apertura_Edicion Then
                    myConsulta = "UPDATE MARCAS_VEHICULOS SET DESCRIPCION = '" & Me.txtMarca.Text.Trim() & "' WHERE ID = " & _idMarca
                    myAccesoDatos.ejecutarConsulta(myConsulta)
                End If

                MessageBox.Show("Los datos han sido guardados exitosamente", "Guardar Marca de Vehículo", MessageBoxButtons.OK, MessageBoxIcon.Information)
                _formPrincipal.frmGestionMarcasVehiculos.buscar(_formPrincipal.frmGestionMarcasVehiculos.armarWhereConsulta)
                _sePresionoGuardar = True
                Me.Close()
            Else
                MsgBox("Ya existe una Marca con esa descripción", vbOKOnly + vbCritical, "Atención")
            End If
        End If
    End Sub

    Private Sub cargarDatosDeLaMarca()
        Dim myAccesoDatos As New AccesoDatos
        Dim tablaDB As New Data.DataTable
        Dim myConsulta As String
        myConsulta = "SELECT DESCRIPCION FROM MARCAS_VEHICULOS WHERE ID = " & _idMarca
                
        tablaDB = myAccesoDatos.ejecutarConsulta(myConsulta)

        'Llenamos las Cajas de Texto con los Valores Correspondientes
        Me.txtMarca.Text = Convert.ToString(tablaDB.Rows.Item(0).Item(0))

    End Sub
End Class